/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.clyme.expediente.controlador;

import com.clyme.expediente.entidad.TipoExpediente;
import com.clyme.expediente.servicios.TipoExpedienteServicios;
import com.clyme.expediente.utilitarios.Utilitario;
import java.io.Serializable;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

/**
 *
 * @author SAM
 */
@ManagedBean(name = "tipoControlador")
@ViewScoped
public class TipoControlador implements Serializable {

    TipoExpediente tipoExpediente;
    List<TipoExpediente> tipos;
    private TipoExpedienteServicios tipoServicios;

    public TipoControlador() {

    }

    public void initLista() {
        if (!FacesContext.getCurrentInstance().isPostback()) {
            tipoServicios = new TipoExpedienteServicios();
            tipos = tipoServicios.obtenerTodos();
        }
    }

    public void initRegistrar() {
        if (!FacesContext.getCurrentInstance().isPostback()) {
            tipoServicios = new TipoExpedienteServicios();
            tipoExpediente = new TipoExpediente();
        }
    }

    public void initUpdate() {
        if (!FacesContext.getCurrentInstance().isPostback()) {
            Object parametro = Utilitario.getFlash("idTipo");
            if (parametro == null) {
                Utilitario.redireccionarJSF(FacesContext.getCurrentInstance(), "/views/cliente/list.xhtml");
                return;
            }
            tipoServicios = new TipoExpedienteServicios();
            tipoExpediente = tipoServicios.obtenerTipo(Integer.valueOf(parametro.toString()));
        }

    }

    public void prepararEliminar(Integer id) {
        tipoExpediente = tipoServicios.obtenerTipo(id);
    }

    public void registrarTipo() {
        if (!esVistaValido()) {
            return;
        }
        tipoServicios.registrarTipo(tipoExpediente);
        limpiar();
    }

    public String irActualizar(int id) {
        Utilitario.putFlash("idTipo", id);
        return "update.xhtml?faces-redirect=true";
    }

    public void actualizarTipo() {
        if (!esVistaValido()) {
            return;
        }
        tipoServicios.actualizarTipo(tipoExpediente);
    }

    public void eliminarTipo() {

        tipoServicios.eliminarTipo(tipoExpediente);
        tipos = tipoServicios.obtenerTodos();
    }

    private void limpiar() {
        tipoExpediente = new TipoExpediente();
    }

    private boolean esVistaValido() {
        boolean ok = true;
        if (!esNombreValido()) {
            ok = false;
        } else if (!esDescripcionValida()) {
            ok = false;
        } else if (!esTiempoValido()) {
            ok = false;
        }
        return ok;
    }

    private boolean esNombreValido() {
        boolean ok = true;
        return ok;
    }

    private boolean esDescripcionValida() {
        boolean ok = true;
        return ok;
    }

    private boolean esTiempoValido() {
        boolean ok = true;
        return ok;
    }

    /**
     * GETTERS AND SETTERS *
     */
    public TipoExpediente getTipoExpediente() {
        return tipoExpediente;
    }

    public void setTipoExpediente(TipoExpediente tipoExpediente) {
        this.tipoExpediente = tipoExpediente;
    }

    public List<TipoExpediente> getTipos() {
        return tipos;
    }

    public void setTipos(List<TipoExpediente> tipos) {
        this.tipos = tipos;
    }

}
